<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>变量</title>
</head>

<body>

</body>

</html>

<script>
    /**
     * const 、let 、var
     **/

    // age = 22



    /**
     * 变量提升
     * JavaScript引擎的工作方式是，先解析代码，获取所有被声明的变量，然后再一行一行的运行
     * 这造成的结果，就是所有的变量的声明语句，都会被提升到代码的头部，这就叫做变量提升
    **/

    // 先打印
    console.log(age) //有变量提升 打印 undefined
    var age = 21

    // 相当于 这种情况 变量提升
    var num;
    console.log(num)
    num = 10;

    console.log(num1)
    const num1 = 20; //没有变量提升 报错

    console.log(num2)
    let num2 = 30  //没有变量提升 报错
</script>